Pisortat aningaasaataat


Atorfillit
OFXOA1_raw <- 
  statgl_url("OFXOA1", lang = language) %>% 
  statgl_fetch(
    time                 = px_top(),
    "function"           = px_all(),
    "inventory variable" = "F",
    .col_code            = TRUE
  ) %>% 
  as_tibble()

OFXOA1 <- 
  OFXOA1_raw %>% 
  mutate(
    `function` = `function` %>% str_remove_all("[:digit:]|\\.") %>% trimws(),
    `function` = `function` %>% fct_reorder(value, .fun = sum, .desc = TRUE)
    ) %>% 
  spread(`inventory variable`, value) %>% 
  arrange(`function`)

OFXOA1 %>% 
  select(-time) %>% 
  rename(" " = 1) %>% 
  statgl_table(replace_0s = TRUE) %>% 
  pack_rows(index = OFXOA1[["time"]] %>% table()) %>% 
  row_spec(1, bold = TRUE)
Piffissaq tamakkerlugu sulisut
2022
Tamakkerlugit 11.224
Inuiaqatigiit illersugaanerat 4.627
Ilinniartitsineq 2.422
Peqqinnissaqarfik 1.650
Pisortat nalinginnaasumik kiffartuussinerat 1.287
Aningaasaqarnermut tunngasut 577
Sunngiffik, kulturi upperisarlu 337
Avatangiisit innarlitsaaliorneqarnerat 265
Inuiaqatigiinni toqqissisimaneq isumannaassuserlu 31
Inissiat tamanillu orninneqarsinnaasut 29
Illersornissaq 0


Se Statistikbankens tabel: OFXOA1

Kommunini naatsorsuutit


OFXUKN1_raw <- 
  statgl_url("OFXUKN1", lang = language) %>%
  statgl_fetch(
    time       = px_top(),
    district   = c("000", "955", "956", "957", "958", "959", "960"),
    keyfigures = px_all(),
    .col_code  = TRUE
  ) %>% 
  as_tibble()

OFXUKN1 <- 
  OFXUKN1_raw %>% 
  filter(value != "NA") %>% 
  mutate(
    keyfigures = keyfigures %>% fct_inorder(),
    district = district %>% fct_reorder(value, .fun = sum, .desc = TRUE)
  ) %>% 
  spread(district, value)

OFXUKN1 %>% 
  select(-time) %>% 
  rename(" " = 1) %>% 
  statgl_table() %>% 
  pack_rows(index = OFXUKN1[["time"]] %>% table())
Katillugit Kommuneqarfik Sermersooq Avannaata Kommunia Qeqqata Kommunia Kommune Qeqertalik Kommune Kujalleq
2022
Meeqqat ulluunerani neqeroorutiniittut tamakkerlutik 3.718,0 1.428,0 713,0 712,0 462,0 403,0
Meeqqat 0 ukiullit 134,0 29,0 18,0 49,0 23,0 15,0
Meeqqat 1-2-nik ukiullit 1.413,0 559,0 252,0 272,0 168,0 162,0
Meeqqat 3-5-nik ukiullit 2.153,0 835,0 434,0 388,0 270,0 226,0
Meeqqat 6-inik ukiullit qummullu 18,0 5,0 9,0 3,0 1,0 0,0
Pisortat 76,0 24,0 13,0 19,0 10,0 11,0
Perorsaasut 153,0 63,0 32,0 24,0 14,0 20,0
Perorsaasutut ilinniarsimasut 252,0 102,0 45,0 46,0 29,0 30,0
Perorsaasunut ikiortit 475,0 178,0 100,0 96,0 66,0 35,0
Igaffimmi eqqiaanermilu sulisut 174,0 57,0 42,0 24,0 27,0 25,0
Piffissaq tamakkerlugu sulisut 1.129,0 423,0 231,0 209,0 144,0 121,0
Meeqqat amerlassusaasa uuttuutaat 4.749,0 1.820,0 893,0 926,0 589,0 521,0
Perorsaasut meeqqanut paaqqinninnermi (pct.) 17,4 18,3 18,1 14,5 12,5 23,8
Meeqqat meeqqerisumut ataatsimut amerlassusaat 5,4 5,3 5,1 5,6 5,5 6,1
Meeqqat 0-5-inut allatsissimasut amerlassusaat (pct.) 75,8 71,6 70,3 84,2 87,0 77,5
Ulluunerani neqeroorutiniittut 158,0 47,0 38,0 35,0 21,0 17,0


Se Statistikbankens tabel: OFXUKN1

Pisortat aningaasaataat
OFXFUNK_raw <- 
  statgl_url("OFXFUNK", lang = language) %>%
  statgl_fetch(
    time       = px_top(),
    sector     = 0,
    "function" = c(0, 1, 8, 11, 17, 25, 29, 33, 39, 44, 50),
    .col_code  = TRUE
  ) %>% 
  as_tibble()

OFXFUNK <- 
  OFXFUNK_raw %>% 
  mutate(
    `function` = `function` %>% 
      str_remove_all("[:digit:]|\\.") %>% 
      trimws() %>% 
      fct_reorder(value, .fun = sum, .desc = TRUE)
    ) %>% 
  spread(sector, value)

OFXFUNK %>% 
  select(-time) %>% 
  rename(" " = 1) %>% 
  statgl_table() %>% 
  pack_rows(index = OFXFUNK[["time"]] %>% table()) %>% 
  row_spec(1, bold = TRUE) |> 
  add_footnote("i 1.000 kr.", notation = "symbol")
Pisortat ingerlataqarfii tamarmiusut
2022
Katillugit 12.799.615
Inuiaqatigiit illersugaanerat 3.717.991
Ilinniartitsineq 2.115.774
Nalinginnaasumik pisortat kiffartuussineri 1.800.941
Peqqinnissaqarfik 1.778.459
Aningaasaqarnermut tunngasut 1.186.866
Inuiaqatigiinni toqqissisimaneq isumannaassuserlu 962.823
Sunngiffik, kulturi upperisarlu 371.474
Inissiat tamanillu orninneqarsinnaasut 343.208
Illersornissaq 278.368
Avatangiisit innarlitsaaliorneqarnerat 243.711
* i 1.000 kr.


Se Statistikbankens tabel: OFXFUNK

OFXREAI_raw <- 
  statgl_url("OFXREAI", lang = language) %>%
  statgl_fetch(
    sector      = 0,
    transaction = c(0, 1, 2, 5, 8, 12, 13, 14, 15, 16, 29, 30, 31, 42, 43),
    time        = px_top(),
    .col_code   = TRUE
  ) %>% 
  as_tibble()

OFXREAI <- 
  OFXREAI_raw %>% 
  mutate(
    transaction = transaction %>% str_remove_all("[:digit:]|\\+|\\(|\\)") %>% trimws() %>% fct_inorder()
    ) %>% 
  mutate_if(is.integer, replace_na, replace = 0) %>% 
  filter(value != 0) %>% 
  spread(sector, value)
  
  
OFXREAI %>% 
  select(-time) %>% 
  arrange(desc(transaction)) %>% 
  rename(" " = 1) %>% 
  statgl_table(replace_0s = TRUE) %>% 
  pack_rows(index = OFXREAI[["time"]] %>% table()) %>% 
  row_spec(1, bold = TRUE) |> 
  add_footnote("i 1.000 kr.", notation = "symbol")
Pisortat ingerlataqarfii tamarmiusut
2022
Ingerlatsinermi aningaasaatiniillu isertitat katillugit 13.527.882
Ingerlats isertitat 13.527.882
Nuussinerit allat ingerlaavartut 5.650.844
Isertitanit pigisanillu akileraarutit 5.317.816
Tunisassiornermi eqqussuinermilu akileraarutit 1.389.473
Erniat iluanaarutillu 399.162
Pisortat suliffeqarfiutaat piginneqataaffiunngitsut 83.123
Isertitat sinneruttut tamarmiusut 687.465
* i 1.000 kr.


Se Statistikbankens tabel: OFXREAI

Nunatta karsiata naatsorsuutai


Tabellerne er for store. Se statistikbanken under Offentlige finanser, regnskabstal for landskassen.


Sidst opdateret: 17. april 2024
LS0tDQpwYXJhbXM6DQogIGxhbmc6ICJkYSINCm91dHB1dDoNCiAgc3RhdGdsOjpzdGF0Z2xfcmVwb3J0Og0KICAgIGNvZGVfZG93bmxvYWQ6IHRydWUNCiAgICBjb2RlX2ZvbGRpbmc6IGhpZGUNCmVkaXRvcl9vcHRpb25zOiANCiAgY2h1bmtfb3V0cHV0X3R5cGU6IGNvbnNvbGUNCi0tLQ0KDQpgYGB7ciBzZXR1cCwgaW5jbHVkZT1GQUxTRX0NCg0Ka25pdHI6Om9wdHNfY2h1bmskc2V0KA0KCWVjaG8gICAgPSBUUlVFLA0KCW1lc3NhZ2UgPSBGQUxTRSwNCgl3YXJuaW5nID0gRkFMU0UsDQoJY2xhc3Mub3V0cHV0ID0gInNjcm9sbC0xMDAiDQopDQoNCmxpYnJhcnkoInRpZHl2ZXJzZSIpDQpsaWJyYXJ5KCJzdGF0Z2wiKQ0KbGlicmFyeSgia2FibGVFeHRyYSIpDQpsaWJyYXJ5KCJsdWJyaWRhdGUiKQ0KbGlicmFyeSgieWFtbCIpDQoNCmxhbmd1YWdlICA8LSBwYXJhbXMkbGFuZw0Kb3B0aW9uICAgIDwtIHBhc3RlMCgiP2xhbmc9IiwgbGFuZ3VhZ2UsICImc2VsZWN0IikNCmxvZ28gICAgICA8LSBwYXN0ZTAoZ2V0d2QoKSwiL2FkZC9sb2dvLmdpZiIpDQp0eHQgICAgICAgPC0gcmVhZF95YW1sKHBhc3RlMChnZXR3ZCgpLCAiL2FkZC90eHQueW1sIiksIGZpbGVFbmNvZGluZyA9ICJJU08tODg1OS0xIikNCnNvdXJjZSAgICA8LSB0eHQkc291cmNlW2xhbmd1YWdlXSAlPiUgdW5saXN0KCkNCg0KeGFyaW5nYW5FeHRyYTo6dXNlX2NsaXBib2FyZCgpDQoNCmBgYA0KDQpgYGB7Y3NzLCBlY2hvID0gRkFMU0V9DQoNCi5hY2NvcmRpb24gew0KICBiYWNrZ3JvdW5kLWNvbG9yOiAjOTE5OTAwOw0KICBjb2xvcjogd2hpdGU7DQogIGN1cnNvcjogcG9pbnRlcjsNCiAgcGFkZGluZzogMThweDsNCiAgd2lkdGg6IDEwMCU7DQogIGJvcmRlcjogbm9uZTsNCiAgYm9yZGVyLXJhZGl1czogNXB4Ow0KICB0ZXh0LWFsaWduOiBsZWZ0Ow0KICBvdXRsaW5lOiBub25lOw0KICBmb250LXNpemU6IDE1cHg7DQogIHRyYW5zaXRpb246IDAuNHM7DQp9DQoNCi5hY3RpdmUsIC5hY2NvcmRpb246aG92ZXIgew0KICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjk3MjQyOw0KfQ0KDQouYWNjb3JkaW9uOmFmdGVyIHsNCiAgY29udGVudDogJ1wwMDJCJzsNCiAgY29sb3I6ICM3Nzc7DQogIGZvbnQtd2VpZ2h0OiBib2xkOw0KICBmbG9hdDogcmlnaHQ7DQogIG1hcmdpbi1sZWZ0OiA1cHg7DQp9DQoNCi5hY3RpdmU6YWZ0ZXIgew0KICBjb250ZW50OiAiXDIyMTIiOw0KfQ0KDQoucGFuZWwgew0KICBwYWRkaW5nOiAwcHggNXB4IDBweCA1cHg7DQogIGJhY2tncm91bmQtY29sb3I6IHdoaXRlOw0KICBtYXgtaGVpZ2h0OiAwOw0KICBvdmVyZmxvdzogaGlkZGVuOw0KICB0cmFuc2l0aW9uOiBtYXgtaGVpZ2h0IDAuMnMgZWFzZS1vdXQ7DQp9DQoNCmRldGFpbHMgew0KICB3aWR0aDogMTAwJTsNCn0NCg0KZGV0YWlscyA+IHN1bW1hcnkgew0KICBwYWRkaW5nOiA0cHggMTJweDsNCiAgd2lkdGg6IDEwMCU7DQogIGJhY2tncm91bmQtY29sb3I6ICMwMDdmOTk7DQogIGJvcmRlcjogc29saWQ7DQogIGJvcmRlci1jb2xvcjogd2hpdGU7DQogIGJvcmRlci1yYWRpdXM6IDVweDsNCiAgY3Vyc29yOiBwb2ludGVyOw0KICBmb250LXNpemU6IDE1cHg7DQogIGNvbG9yOiB3aGl0ZTsNCn0NCg0KZGV0YWlsc1tvcGVuXSA+IHN1bW1hcnkgew0KICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmFhNDFhOw0KfQ0KDQoNCi50aXRsZSB7DQogIGNvbG9yOiAjMWI1NDYzOw0KICBmb250LXNpemU6IDM2cHg7DQp9DQoNCg0KLnBlcnNvbmVyIHsNCiAgYm94LXNoYWRvdzogM3B4IDNweCA0cHggYmxhY2s7DQogIGJhY2tncm91bmQ6ICMwMDQ0NTk7DQogIHBhZGRpbmctcmlnaHQ6IDE1cHg7DQogIHBhZGRpbmctbGVmdDogMTZweDsNCiAgcGFkZGluZy10b3A6IDAuMXB4Ow0KICBwYWRkaW5nLWJvdHRvbTogMXB4Ow0KICBmb250LXNpemU6IDExcHg7DQogIGNvbG9yOiB3aGl0ZTsNCiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTsNCn0NCg0KLsO4a29ub21pIHsNCiAgYm94LXNoYWRvdzogM3B4IDNweCA0cHggYmxhY2s7DQogIGJhY2tncm91bmQ6ICMwMDdGOTk7DQogIHBhZGRpbmctcmlnaHQ6IDE1cHg7DQogIHBhZGRpbmctbGVmdDogMTZweDsNCiAgcGFkZGluZy10b3A6IDFweDsNCiAgcGFkZGluZy1ib3R0b206IDAuMXB4Ow0KICBmb250LXNpemU6IDExcHg7DQogIGNvbG9yOiB3aGl0ZTsNCiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTsNCn0NCg0KLnR2w6ZyZ8OlZW5kZSB7DQogIGJveC1zaGFkb3c6IDNweCAzcHggNHB4IGJsYWNrOw0KICBiYWNrZ3JvdW5kOiAjZmFhNDFhOw0KICBwYWRkaW5nLXJpZ2h0OiAxNXB4Ow0KICBwYWRkaW5nLWxlZnQ6IDE2cHg7DQogIHBhZGRpbmctdG9wOiAwLjFweDsNCiAgcGFkZGluZy1ib3R0b206IDFweDsNCiAgZm9udC1zaXplOiAxMXB4Ow0KICBjb2xvcjogd2hpdGU7DQogIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7DQp9DQoNCi5jb250YWluZXIgew0KICB3aWR0aDogaW5oZXJpdDsNCn0NCg0KLnNjcm9sbC0xMDAgew0KICBtYXgtaGVpZ2h0OiAxMDA7DQogIG92ZXJmbG93LXk6IGF1dG87DQogIGJhY2tncm91bmQtY29sb3I6IGluaGVyaXQ7DQp9DQoNCg0KcHJlIHsNCiAgbWF4LWhlaWdodDogMzAwcHg7DQogIG92ZXJmbG93LXk6IGF1dG87DQp9DQoNCnByZVtjbGFzc10gew0KICBtYXgtaGVpZ2h0OiAzMDBweDsNCn0NCg0KYGBgDQoNCjxicj4NCjxicj4NCg0KPGNlbnRlcj4NCg0KLS0tDQogDQojIFtgciB0eHQkT0YkdGl0bGVbbGFuZ3VhZ2VdYF17LnRpdGxlfQ0KIA0KLS0tDQo8L2NlbnRlcj4NCg0KPGRldGFpbHM+IDxzdW1tYXJ5PiBgciB0eHQkT0Ykc3ViMVtsYW5ndWFnZV1gIDwvc3VtbWFyeT4gDQo8YnI+DQo8YnV0dG9uIGNsYXNzPSJhY2NvcmRpb24iPiBgciBwYXN0ZTAoIioqVGFiZWwgMTogKioiLCBzdGF0Z2xfbWV0YShzdGF0Z2xfdXJsKCJPRlhPQTEiLCBsYW5nID0gbGFuZ3VhZ2UpKVsxXSR0aXRsZSkgYCA8L2J1dHRvbj4gPGRpdiBjbGFzcz0icGFuZWwiPg0KYGBge3IgT0ZYT0ExfQ0KDQpPRlhPQTFfcmF3IDwtIA0KICBzdGF0Z2xfdXJsKCJPRlhPQTEiLCBsYW5nID0gbGFuZ3VhZ2UpICU+JSANCiAgc3RhdGdsX2ZldGNoKA0KICAgIHRpbWUgICAgICAgICAgICAgICAgID0gcHhfdG9wKCksDQogICAgImZ1bmN0aW9uIiAgICAgICAgICAgPSBweF9hbGwoKSwNCiAgICAiaW52ZW50b3J5IHZhcmlhYmxlIiA9ICJGIiwNCiAgICAuY29sX2NvZGUgICAgICAgICAgICA9IFRSVUUNCiAgKSAlPiUgDQogIGFzX3RpYmJsZSgpDQoNCk9GWE9BMSA8LSANCiAgT0ZYT0ExX3JhdyAlPiUgDQogIG11dGF0ZSgNCiAgICBgZnVuY3Rpb25gID0gYGZ1bmN0aW9uYCAlPiUgc3RyX3JlbW92ZV9hbGwoIls6ZGlnaXQ6XXxcXC4iKSAlPiUgdHJpbXdzKCksDQogICAgYGZ1bmN0aW9uYCA9IGBmdW5jdGlvbmAgJT4lIGZjdF9yZW9yZGVyKHZhbHVlLCAuZnVuID0gc3VtLCAuZGVzYyA9IFRSVUUpDQogICAgKSAlPiUgDQogIHNwcmVhZChgaW52ZW50b3J5IHZhcmlhYmxlYCwgdmFsdWUpICU+JSANCiAgYXJyYW5nZShgZnVuY3Rpb25gKQ0KDQpPRlhPQTEgJT4lIA0KICBzZWxlY3QoLXRpbWUpICU+JSANCiAgcmVuYW1lKCIgIiA9IDEpICU+JSANCiAgc3RhdGdsX3RhYmxlKHJlcGxhY2VfMHMgPSBUUlVFKSAlPiUgDQogIHBhY2tfcm93cyhpbmRleCA9IE9GWE9BMVtbInRpbWUiXV0gJT4lIHRhYmxlKCkpICU+JSANCiAgcm93X3NwZWMoMSwgYm9sZCA9IFRSVUUpDQoNCmBgYA0KPGJyPg0KWyFbXShgciBsb2dvYCl7d2lkdGg9NDB9YHIgcGFzdGUoc291cmNlLCAiT0ZYT0ExIilgXShgciBwYXN0ZTAoImh0dHBzOi8vYmFuay5zdGF0LmdsOjQ0My9zcS8yNDk1NmY2Mi01ZDAzLTRmOTAtOTAxMC1jYzhlNDZkMTM5MWYiLCBvcHRpb24pYCl7dGFyZ2V0PSJfYmxhbmsifQ0KPC9kaXY+IA0KDQo8L2RldGFpbHM+DQoNCjxkZXRhaWxzPiA8c3VtbWFyeT4gYHIgdHh0JE9GJHN1YjJbbGFuZ3VhZ2VdYCA8L3N1bW1hcnk+DQo8YnI+DQoNCjxidXR0b24gY2xhc3M9ImFjY29yZGlvbiI+IGByIHBhc3RlMCgiKipUYWJlbCAyOiAqKiIsIHN0YXRnbF9tZXRhKHN0YXRnbF91cmwoIk9GWFVLTjEiLCBsYW5nID0gbGFuZ3VhZ2UpKVsxXSR0aXRsZSkgYCA8L2J1dHRvbj4gPGRpdiBjbGFzcz0icGFuZWwiPg0KDQpgYGB7ciBPRlhVS04xfQ0KDQpPRlhVS04xX3JhdyA8LSANCiAgc3RhdGdsX3VybCgiT0ZYVUtOMSIsIGxhbmcgPSBsYW5ndWFnZSkgJT4lDQogIHN0YXRnbF9mZXRjaCgNCiAgICB0aW1lICAgICAgID0gcHhfdG9wKCksDQogICAgZGlzdHJpY3QgICA9IGMoIjAwMCIsICI5NTUiLCAiOTU2IiwgIjk1NyIsICI5NTgiLCAiOTU5IiwgIjk2MCIpLA0KICAgIGtleWZpZ3VyZXMgPSBweF9hbGwoKSwNCiAgICAuY29sX2NvZGUgID0gVFJVRQ0KICApICU+JSANCiAgYXNfdGliYmxlKCkNCg0KT0ZYVUtOMSA8LSANCiAgT0ZYVUtOMV9yYXcgJT4lIA0KICBmaWx0ZXIodmFsdWUgIT0gIk5BIikgJT4lIA0KICBtdXRhdGUoDQogICAga2V5ZmlndXJlcyA9IGtleWZpZ3VyZXMgJT4lIGZjdF9pbm9yZGVyKCksDQogICAgZGlzdHJpY3QgPSBkaXN0cmljdCAlPiUgZmN0X3Jlb3JkZXIodmFsdWUsIC5mdW4gPSBzdW0sIC5kZXNjID0gVFJVRSkNCiAgKSAlPiUgDQogIHNwcmVhZChkaXN0cmljdCwgdmFsdWUpDQoNCk9GWFVLTjEgJT4lIA0KICBzZWxlY3QoLXRpbWUpICU+JSANCiAgcmVuYW1lKCIgIiA9IDEpICU+JSANCiAgc3RhdGdsX3RhYmxlKCkgJT4lIA0KICBwYWNrX3Jvd3MoaW5kZXggPSBPRlhVS04xW1sidGltZSJdXSAlPiUgdGFibGUoKSkNCg0KYGBgDQo8YnI+DQpbIVtdKGByIGxvZ29gKXt3aWR0aD00MH1gciBwYXN0ZShzb3VyY2UsICJPRlhVS04xIilgXShgciBwYXN0ZTAoImh0dHBzOi8vYmFuay5zdGF0LmdsOjQ0My9zcS9jYTNjNDIxMy00YWFiLTRmMTYtOWNkYi03MzhmNWMxZTk5MTUiLCBvcHRpb24pYCl7dGFyZ2V0PSJfYmxhbmsifQ0KPC9kaXY+IA0KDQoNCjwvZGV0YWlscz4NCg0KPGRldGFpbHM+IDxzdW1tYXJ5PiBgciB0eHQkT0Ykc3ViM1tsYW5ndWFnZV1gIDwvc3VtbWFyeT4gDQo8YnI+DQo8YnV0dG9uIGNsYXNzPSJhY2NvcmRpb24iPiBgciBwYXN0ZTAoIioqVGFiZWwgMzogKioiLCBzdGF0Z2xfbWV0YShzdGF0Z2xfdXJsKCJPRlhGVU5LIiwgbGFuZyA9IGxhbmd1YWdlKSlbMV0kdGl0bGUpIGAgPC9idXR0b24+IDxkaXYgY2xhc3M9InBhbmVsIj4NCg0KYGBge3IgT0ZYRlVOS30NCg0KT0ZYRlVOS19yYXcgPC0gDQogIHN0YXRnbF91cmwoIk9GWEZVTksiLCBsYW5nID0gbGFuZ3VhZ2UpICU+JQ0KICBzdGF0Z2xfZmV0Y2goDQogICAgdGltZSAgICAgICA9IHB4X3RvcCgpLA0KICAgIHNlY3RvciAgICAgPSAwLA0KICAgICJmdW5jdGlvbiIgPSBjKDAsIDEsIDgsIDExLCAxNywgMjUsIDI5LCAzMywgMzksIDQ0LCA1MCksDQogICAgLmNvbF9jb2RlICA9IFRSVUUNCiAgKSAlPiUgDQogIGFzX3RpYmJsZSgpDQoNCk9GWEZVTksgPC0gDQogIE9GWEZVTktfcmF3ICU+JSANCiAgbXV0YXRlKA0KICAgIGBmdW5jdGlvbmAgPSBgZnVuY3Rpb25gICU+JSANCiAgICAgIHN0cl9yZW1vdmVfYWxsKCJbOmRpZ2l0Ol18XFwuIikgJT4lIA0KICAgICAgdHJpbXdzKCkgJT4lIA0KICAgICAgZmN0X3Jlb3JkZXIodmFsdWUsIC5mdW4gPSBzdW0sIC5kZXNjID0gVFJVRSkNCiAgICApICU+JSANCiAgc3ByZWFkKHNlY3RvciwgdmFsdWUpDQoNCk9GWEZVTksgJT4lIA0KICBzZWxlY3QoLXRpbWUpICU+JSANCiAgcmVuYW1lKCIgIiA9IDEpICU+JSANCiAgc3RhdGdsX3RhYmxlKCkgJT4lIA0KICBwYWNrX3Jvd3MoaW5kZXggPSBPRlhGVU5LW1sidGltZSJdXSAlPiUgdGFibGUoKSkgJT4lIA0KICByb3dfc3BlYygxLCBib2xkID0gVFJVRSkgfD4gDQogIGFkZF9mb290bm90ZSgiaSAxLjAwMCBrci4iLCBub3RhdGlvbiA9ICJzeW1ib2wiKQ0KDQpgYGANCjxicj4NClshW10oYHIgbG9nb2Ape3dpZHRoPTQwfWByIHBhc3RlKHNvdXJjZSwgIk9GWEZVTksiKWBdKGByIHBhc3RlMCgiaHR0cHM6Ly9iYW5rLnN0YXQuZ2w6NDQzL3NxLzkzYjE5OGU5LTI3MGYtNDFlYS05ODI4LTJlNGNmMmVjNjIzZiIsIG9wdGlvbilgKXt0YXJnZXQ9Il9ibGFuayJ9DQo8L2Rpdj4gDQoNCg0KPGJ1dHRvbiBjbGFzcz0iYWNjb3JkaW9uIj4gYHIgcGFzdGUwKCIqKlRhYmVsIDQ6ICoqIiwgc3RhdGdsX21ldGEoc3RhdGdsX3VybCgiT0ZYUkVBSSIsIGxhbmcgPSBsYW5ndWFnZSkpWzFdJHRpdGxlKSBgIDwvYnV0dG9uPiA8ZGl2IGNsYXNzPSJwYW5lbCI+DQoNCmBgYHtyIE9GWFJFQUl9DQoNCk9GWFJFQUlfcmF3IDwtIA0KICBzdGF0Z2xfdXJsKCJPRlhSRUFJIiwgbGFuZyA9IGxhbmd1YWdlKSAlPiUNCiAgc3RhdGdsX2ZldGNoKA0KICAgIHNlY3RvciAgICAgID0gMCwNCiAgICB0cmFuc2FjdGlvbiA9IGMoMCwgMSwgMiwgNSwgOCwgMTIsIDEzLCAxNCwgMTUsIDE2LCAyOSwgMzAsIDMxLCA0MiwgNDMpLA0KICAgIHRpbWUgICAgICAgID0gcHhfdG9wKCksDQogICAgLmNvbF9jb2RlICAgPSBUUlVFDQogICkgJT4lIA0KICBhc190aWJibGUoKQ0KDQpPRlhSRUFJIDwtIA0KICBPRlhSRUFJX3JhdyAlPiUgDQogIG11dGF0ZSgNCiAgICB0cmFuc2FjdGlvbiA9IHRyYW5zYWN0aW9uICU+JSBzdHJfcmVtb3ZlX2FsbCgiWzpkaWdpdDpdfFxcK3xcXCh8XFwpIikgJT4lIHRyaW13cygpICU+JSBmY3RfaW5vcmRlcigpDQogICAgKSAlPiUgDQogIG11dGF0ZV9pZihpcy5pbnRlZ2VyLCByZXBsYWNlX25hLCByZXBsYWNlID0gMCkgJT4lIA0KICBmaWx0ZXIodmFsdWUgIT0gMCkgJT4lIA0KICBzcHJlYWQoc2VjdG9yLCB2YWx1ZSkNCiAgDQogIA0KT0ZYUkVBSSAlPiUgDQogIHNlbGVjdCgtdGltZSkgJT4lIA0KICBhcnJhbmdlKGRlc2ModHJhbnNhY3Rpb24pKSAlPiUgDQogIHJlbmFtZSgiICIgPSAxKSAlPiUgDQogIHN0YXRnbF90YWJsZShyZXBsYWNlXzBzID0gVFJVRSkgJT4lIA0KICBwYWNrX3Jvd3MoaW5kZXggPSBPRlhSRUFJW1sidGltZSJdXSAlPiUgdGFibGUoKSkgJT4lIA0KICByb3dfc3BlYygxLCBib2xkID0gVFJVRSkgfD4gDQogIGFkZF9mb290bm90ZSgiaSAxLjAwMCBrci4iLCBub3RhdGlvbiA9ICJzeW1ib2wiKQ0KDQpgYGANCjxicj4NClshW10oYHIgbG9nb2Ape3dpZHRoPTQwfWByIHBhc3RlKHNvdXJjZSwgIk9GWFJFQUkiKWBdKGByIHBhc3RlMCgiaHR0cHM6Ly9iYW5rLnN0YXQuZ2w6NDQzL3NxLzhkODA0NzFlLTNlYzctNDRlMC1hNDNkLWI3Y2M4ZjBhMjJkYiIsIG9wdGlvbilgKXt0YXJnZXQ9Il9ibGFuayJ9DQo8L2Rpdj4gDQogDQoNCjwvZGV0YWlscz4gDQoNCjxkZXRhaWxzPiA8c3VtbWFyeT4gYHIgdHh0JE9GJHN1YjRbbGFuZ3VhZ2VdYCA8L3N1bW1hcnk+DQoNCjxicj4NClRhYmVsbGVybmUgZXIgZm9yIHN0b3JlLiBTZSBzdGF0aXN0aWtiYW5rZW4gdW5kZXIgT2ZmZW50bGlnZSBmaW5hbnNlciwgcmVnbnNrYWJzdGFsIGZvciBsYW5kc2thc3Nlbi4NCg0KPC9kZXRhaWxzPiANCg0KDQo8aHIgc3R5bGU9ImJvcmRlcjoxcHggcmlkZ2UgbGlnaHRncmF5Ij4gPC9ocj4NCjxjZW50ZXI+IDxzcGFuIHN0eWxlPSdjb2xvcjojRDNEM0QzOyBmb250LXNpemU6OTAlOyc+IGByIHBhc3RlKHR4dCR1cGRhdGVbbGFuZ3VhZ2VdLCBmb3JtYXQoU3lzLkRhdGUoKSwgIiVkLiAlQiAlWSIpKWAgPC9zcGFuPiA8L2NlbnRlcj4NCg0KDQoNCg0KPHNjcmlwdD4NCnZhciBhY2MgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCJhY2NvcmRpb24iKTsNCnZhciBpOw0KDQpmb3IgKGkgPSAwOyBpIDwgYWNjLmxlbmd0aDsgaSsrKSB7DQogIGFjY1tpXS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsIGZ1bmN0aW9uKCkgew0KICAgIHRoaXMuY2xhc3NMaXN0LnRvZ2dsZSgiYWN0aXZlIik7DQogICAgdmFyIHBhbmVsID0gdGhpcy5uZXh0RWxlbWVudFNpYmxpbmc7DQogICAgaWYgKHBhbmVsLnN0eWxlLm1heEhlaWdodCkgew0KICAgICAgcGFuZWwuc3R5bGUubWF4SGVpZ2h0ID0gbnVsbDsNCiAgICB9IGVsc2Ugew0KICAgICAgcGFuZWwuc3R5bGUubWF4SGVpZ2h0ID0gcGFuZWwuc2Nyb2xsSGVpZ2h0ICsgInB4IjsNCiAgICB9IA0KICB9KTsNCn0NCjwvc2NyaXB0Pg0K